/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package aicue1.singletons;

import aicue1.beans.Item;
import aicue1.beans.Order;
import java.util.ArrayList;
import java.util.ListIterator;

/**
 *
 * @author Thomas
 */
public class ShippingItemsSingleton
{
    /**
     * Privates Klassenattribut,
     * wird beim erstmaligen Gebrauch (nicht beim Laden) der Klasse erzeugt
     */
    private static ShippingItemsSingleton shippingInstance = null;

    private ArrayList<Item> shippingItemsList = null;

    /** Konstruktor ist privat, Klasse darf nicht von außen instanziiert werden. */
    private ShippingItemsSingleton()
    {
        shippingItemsList = new ArrayList<Item>();
    }

    /**
     * Statische Methode "getInstance()" liefert die einzige Instanz der Klasse zurück.
     * Ist synchronisiert und somit thread-sicher.
     */
    public synchronized static ShippingItemsSingleton getInstance()
    {
        if (shippingInstance == null) {
           shippingInstance = new ShippingItemsSingleton();
        }
        return shippingInstance;
    }

    public synchronized Boolean insertShippingItem(Item item)
    {
        Boolean insertOk = false;
        if(!shippingItemsList.contains(item))
        {
            shippingItemsList.add(item);
            insertOk = true;
        }
        return insertOk;
    }

    public synchronized void moveShippingItem(Item item)
    {
          shippingItemsList.remove(item);
          ShippedItemsSingleton shippedItems = ShippedItemsSingleton.getInstance();
          shippedItems.insertShippedItem(item);
   
    }

    public synchronized void clearList()
    {
         shippingItemsList.clear();
    }
}
